home *** CD-ROM | disk | FTP | other *** search
/ Transactor / Transactor_13_1986_Transactor_Publishing.d64 / sprite numbers (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  2KB  |  99 lines

  1. 1 rem sprite number demo v4
  2. 2 rem james a. lisowksi, 902 willow ln.
  3. 3 rem s. milwaukee, wi 53172
  4. 4 rem public domain software
  5. 5 :
  6. 10 rem----set up sprite zero
  7. 20 :
  8. 30 vs=53248:rem first vic-ii register
  9. 40 sx=vs:sy=vs+1:rem sprite x/y reg.
  10. 50 sn=vs+21:rem sprite enable reg.
  11. 60 poke2040,13:rem sprite mem area 13
  12. 79 :
  13. 80 rem remove rem in line 90 for
  14. 82 rem un-expanded character size
  15. 90 pokevs+29,1:pokevs+23,1
  16. 100 :
  17. 110 rem----set up number patterns
  18. 120 :
  19. 130 rem turn interupt off, switch rom in
  20. 140 poke56334,peek(56334)and254
  21. 142 poke1,peek(1)and251
  22. 145 :
  23. 150 rem start of rom number patterns
  24. 160 cs=53248+8*48
  25. 170 rem start of ram storage area
  26. 180 cm=49152
  27. 190 rem take character info from rom
  28. 200 rem and place in into protected ram
  29. 210 fori=0to80:pokecm+i,peek(cs+i):next
  30. 220 rem turn interupt on, switch rom out
  31. 230 poke1,peek(1)or4
  32. 240 poke56334,peek(56334)or1
  33. 250 :
  34. 300 rem----clear sprite pattern
  35. 310 fori=832to894:pokei,0:next
  36. 320 :
  37. 330 :
  38. 500 rem==== demo mainline ====
  39. 510 :
  40. 520 rem set msb of x position to off
  41. 530 pokevs+16,0
  42. 540 :
  43. 550 rem set sprite x/y position to 100
  44. 560 pokesx,100:pokesy,100
  45. 570 :
  46. 580 rem clear and title the screen
  47. 590 print"[147]sprite number demo 1234567890"
  48. 600 :
  49. 610 rem set sprite random sprite color
  50. 620 pokevs+39,rnd(0)*15
  51. 630 :
  52. 640 rem get a 1 to 3 digit positive #
  53. 650 nu=int(rnd(0)*999)
  54. 660 :
  55. 670 rem goto the sprite subroutine,
  56. 680 rem turn number nu into a sprite
  57. 690 rem and display it in motion
  58. 700 gosub 1000
  59. 710 :
  60. 720 rem wait a while, then try another
  61. 730 rem number
  62. 740 ford=1000to2000step5:pokesx,d/10
  63. 745 nextd:pokesn,0:pokesx,100:goto610
  64. 750 :
  65. 760 rem===== end of mainline ====
  66. 770 :
  67. 780 :
  68. 900 rem----sprite number subroutine
  69. 910 :
  70. 920 rem---turn the sprite off
  71. 1000 poke sn,0
  72. 1010 :
  73. 1020 rem---clear part of sprite
  74. 1030 fori=832to852:pokei,0:nexti
  75. 1040 :
  76. 1050 rem---make nu a string 3 characters
  77. 1060 rem in length with leading spaces
  78. 1070 nu$=right$(" "+str$(nu),3)
  79. 1080 :
  80. 1090 rem---select the 3 digit
  81. 1100 rem characters, one at a time
  82. 1110 rem and change the character into
  83. 1120 rem a number nd, skip spaces
  84. 1130 for ch=0to2:in=0
  85. 1140 ch$=mid$(nu$,(ch+1),1)
  86. 1150 if ch$=" "then 1230
  87. 1160 nd=val(ch$)
  88. 1170 rem---get the character pattern for
  89. 1180 rem   this number and place it in
  90. 1190 rem   the proper sprite memory area
  91. 1200 for i=(832+ch)to(855+ch)step3
  92. 1210 poke i,peek(in+cm+nd*8):in=in+1
  93. 1220 next i
  94. 1230 next ch
  95. 1240 :
  96. 1250 rem---turn finished sprite on and
  97. 1260 rem return to main program
  98. 1270 poke sn,1:return
  99.